--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 68f403bf849933f1f22aa91d63dab78168565523
Parents : 30a07a3
Author : Matt Corallo <git@bluematt.me>
Date : 2019-09-26T18:50:04-04:00
Use Packet RSSI formula from datasheet section 5.5.5
Changes
Diff
diff --git a/LoRa.cpp b/LoRa.cpp
index eb3ec2a..64d5fec 100644
--- a/LoRa.cpp
+++ b/LoRa.cpp
@@ -219,6 +219,12 @@ uint8_t LoRaClass::packetRssiRaw() {
int LoRaClass::packetRssi() {
int pkt_rssi = (int)readRegister(REG_PKT_RSSI_VALUE);
+ int8_t pkt_snr = ((int8_t)readRegister(REG_PKT_SNR_VALUE));
+ if pkt_snr < 0 {
+ pkt_rssi = pkt_rssi * 16 / 15;
+ } else {
+ pkt_rssi += pkt_snr / 4;
+ }
// TODO: change this to look at the actual model code
if (_frequency < 820E6) pkt_rssi -= 7;
pkt_rssi -= 157;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────